package itheima03;

import domain.Person;

/*
    获取字节码文件(.class文件)对象三种方式
        1.java.lang.Object类 成员方法
            public Class<?> getClass(): 获取Class类型的对象(字节码文件对象)

        2.class属性
            任意类型,都有一个隐藏的class属性: 获取Class类型的对象

        3.java.lang.Class类 静态方法                 --------------建议使用------------
            public static Class<?> forName(String className): 获取方法参数指定类名对应的Class类型的对象


        java.lang.Class类的成员方法:
            public String getSimpleName() : 获得简单类名，只是类名，没有包
            public String getName(): 获得类名，有类名，有包

 */

public class Demo03GetClassObject {
    public static void main(String[] args) throws ClassNotFoundException {
        Person person=new Person();
        Class c1=person.getClass();
        System.out.println("c1:"+c1);

        Class<Person> c2=Person.class;
        System.out.println("c2:"+c2);

        Class<?> c3=Class.forName("domain.Person");
        System.out.println("c3:"+c3);

        System.out.println(c1==c2);
        System.out.println(c3==c2);
        System.out.println(c1==c3);

        System.out.println("------------");
        //类名
        System.out.println(c1.getSimpleName());

        System.out.println("-------------");
        //包名.类名
        System.out.println(c1.getName());

    }
}